package lock;
/*
可重入锁（递归锁）
    同一个线程外层函数获取锁之后，内层函数仍然能获取该锁的代码，即在同一个线程在
    外层获取锁的时候，在进入内存方法会自动获取锁。
    线程可以进入任何一个它已经拥有锁所有同步者的代码块
作用：避免死锁
 */
public class LockDemo {

    public static void main(String[] args) {

    }
}

class Demo {

    public synchronized void method1() {
        System.out.println("method1 begin");
        method2();
        System.out.println("method 1 over");
    }

    public synchronized void method2() {
        System.out.println("method 2");
    }
}